草庐IT

C++ 类 class

全部标签

c++ - 如何编写一个 hello world 内核?

我正在编写一个内核,所以我从内核中的一个helloworld程序开始。我用C++编写了一个helloworld内核,它编译成功。但是当我启动它时,它并没有在屏幕上显示任何内容。这段代码有什么问题?链接.ldOUTPUT_FORMAT("binary")ENTRY(start)SECTIONS{.=0x00100000;.text:{*(.text)}.rodataALIGN(0x1000):{*(.rodata)}.dataALIGN(0x1000):{*(.data)}.bss:{sbss=.;*(COMMON)*(.bss)ebss=.;}}loader.asm[BITS32]gl

c++ - 如何编写一个 hello world 内核?

我正在编写一个内核,所以我从内核中的一个helloworld程序开始。我用C++编写了一个helloworld内核,它编译成功。但是当我启动它时,它并没有在屏幕上显示任何内容。这段代码有什么问题?链接.ldOUTPUT_FORMAT("binary")ENTRY(start)SECTIONS{.=0x00100000;.text:{*(.text)}.rodataALIGN(0x1000):{*(.rodata)}.dataALIGN(0x1000):{*(.data)}.bss:{sbss=.;*(COMMON)*(.bss)ebss=.;}}loader.asm[BITS32]gl

c++ - C++ 的 C 包装器

我想使用PureData作为我自己的库的原型(prototype)设计工具。我发现PureData补丁是用C编写的,但我的库是用C++编写的。那么如何在纯数据中使用此代码?由于我没有使用纯C,我想知道如何为C++类编写C包装器以及如何实例化我的类?还是我必须用C重写所有内容? 最佳答案 您需要为每个需要调用的函数编写包装函数。例如://TheC++implementationclassSomeObj{voidfunc(int);};extern"C"{SomeObj*newSomeObj(){returnnewSomeObj();}

c++ - C++ 的 C 包装器

我想使用PureData作为我自己的库的原型(prototype)设计工具。我发现PureData补丁是用C编写的,但我的库是用C++编写的。那么如何在纯数据中使用此代码?由于我没有使用纯C,我想知道如何为C++类编写C包装器以及如何实例化我的类?还是我必须用C重写所有内容? 最佳答案 您需要为每个需要调用的函数编写包装函数。例如://TheC++implementationclassSomeObj{voidfunc(int);};extern"C"{SomeObj*newSomeObj(){returnnewSomeObj();}

java - C++ 等价于使用 <T extends Class> 作为 java 参数/返回类型

在java中,要创建一个返回与参数相同类型的对象并扩展某个类的函数,我会输入:publicTfoo(Tbar){...}是否有与此等效的C++?换句话说,我如何创建一个函数,该函数接受任何扩展某个类的类,并返回相同的类型?(这是为了抽象/纯虚拟类)。 最佳答案 从技术上讲,正如其他答案所示,有一些方法可以在编译时将其限制为某种类型的子类型。然而,大多数时候,你会这样做templateTfoo(Tbar){...}无需指定边界。在Java中,泛型需要边界,因为泛型类或方法是与它的任何使用分开编译的。泛型类或方法被编译一次,成为字节码中

java - C++ 等价于使用 <T extends Class> 作为 java 参数/返回类型

在java中,要创建一个返回与参数相同类型的对象并扩展某个类的函数,我会输入:publicTfoo(Tbar){...}是否有与此等效的C++?换句话说,我如何创建一个函数,该函数接受任何扩展某个类的类,并返回相同的类型?(这是为了抽象/纯虚拟类)。 最佳答案 从技术上讲,正如其他答案所示,有一些方法可以在编译时将其限制为某种类型的子类型。然而,大多数时候,你会这样做templateTfoo(Tbar){...}无需指定边界。在Java中,泛型需要边界,因为泛型类或方法是与它的任何使用分开编译的。泛型类或方法被编译一次,成为字节码中

c++ - 从 "C++"代码调用 "C"类成员函数

我们如何在“C”代码中调用“C++”类成员函数?我有两个文件.cpp,我在其中定义了一些具有成员函数的类和相应的“.h”文件,其中包括一些其他帮助cpp/h文件。现在我想在“C”文件中调用CPP文件的这些功能。我该怎么做? 最佳答案 C没有thiscall概念。C调用约定不允许直接调用C++对象成员函数。因此,您需要为您的C++对象提供一个包装API,该API显式地而不是隐式地获取this指针。例子://C.hpp//usesC++callingconventionclassC{public:boolfoo(intarg);};C封

c++ - 从 "C++"代码调用 "C"类成员函数

我们如何在“C”代码中调用“C++”类成员函数?我有两个文件.cpp,我在其中定义了一些具有成员函数的类和相应的“.h”文件,其中包括一些其他帮助cpp/h文件。现在我想在“C”文件中调用CPP文件的这些功能。我该怎么做? 最佳答案 C没有thiscall概念。C调用约定不允许直接调用C++对象成员函数。因此,您需要为您的C++对象提供一个包装API,该API显式地而不是隐式地获取this指针。例子://C.hpp//usesC++callingconventionclassC{public:boolfoo(intarg);};C封

c++ - 如何从 c 文件调用 c++ 类及其方法

我正在尝试访问一个C++类并从.c文件中调用它的方法。我在谷歌上搜索了这个主题并找到了http://developers.sun.com/solaris/articles/mixing.html上面写着:Youcanwriteextern"C"functionsinC++thataccessclassMobjectsandcallthemfromCcode.这里是一个设计用来调用成员函数foo的C++函数:extern"C"intcall_M_foo(M*m,inti){returnm->foo(i);}我的问题是我应该把about行放在哪里?在我的C++.h文件中?还是C.h文件?它

c++ - 如何从 c 文件调用 c++ 类及其方法

我正在尝试访问一个C++类并从.c文件中调用它的方法。我在谷歌上搜索了这个主题并找到了http://developers.sun.com/solaris/articles/mixing.html上面写着:Youcanwriteextern"C"functionsinC++thataccessclassMobjectsandcallthemfromCcode.这里是一个设计用来调用成员函数foo的C++函数:extern"C"intcall_M_foo(M*m,inti){returnm->foo(i);}我的问题是我应该把about行放在哪里?在我的C++.h文件中?还是C.h文件?它